
# -*- coding: utf-8 -*-
from django import forms
from django.forms import Form, ModelForm, ModelChoiceField,ModelMultipleChoiceField
from wal.control.models import Control, DetalleControl, Evaluacion, Accion, Stock
from wal.pedidos.models import Pedido, DetallePedido
from wal.clientes.models import Cliente
from wal.articulos.models import Articulo
from django.contrib.admin import widgets

class choiceName(ModelChoiceField):
    def label_from_instance(self, obj):
        name = obj.first_name +' '+ obj.last_name
        return name
    
class choiceMultipleName(ModelMultipleChoiceField):
    def label_from_instance(self, obj):
        name = obj.first_name +' '+ obj.last_name
        return name
    
class ControlForm(ModelForm):
    fecha = forms.DateField(widget = widgets.AdminDateWidget(),label="* Fecha",help_text='Fecha en la que se realizó el Control de Calidad')
    class Meta:
        model = Control
        exclude = ('nombre','pedido','cliente','kgreal','kgproc','unidades',)
        
class DetalleControlForm(ModelForm):
    def __init__(self,pedido, *args, **kwargs):
        super(DetalleControlForm, self).__init__(*args, **kwargs)
        detalles = DetallePedido.objects.filter(pedido=pedido)
        list = []
        for det in detalles:
            if det.articulo not in list:
                list.append(det.articulo)
        self.fields['articulo'].queryset = Articulo.objects.filter(nombre__in = list).order_by("nombre")
    class Meta:
        model = DetalleControl
        exclude = ('control','despachado','stock','nuevo','proceso',)
        
class EvaluacionForm(ModelForm):
    class Meta:
        model = Evaluacion
        exclude = ('nombre','fecha','detalle','conformidad',)
        
class AccionForm(ModelForm):
    plazo = forms.DateField(widget = widgets.AdminDateWidget(),label="* Plazo",help_text='Fecha límite para realizar la acción')
    class Meta:
        model = Accion
        exclude = ('conformidad','evaluacion','ec','reprogramado',)
        
class StockForm(ModelForm):
    class Meta:
        model = Stock
        exclude = ('pedido','proceso','articulo','cantidad','stock','despachado','nombre','procesado',)
        
class PesoForm(Form):
    peso = forms.FloatField(label="* Peso promedio")
    
class FechaForm(Form):
    fecha = forms.DateField(widget = widgets.AdminDateWidget(),label="* Fecha de la corrección")
    
        